<?php

namespace app\controller;

use think\captcha\facade\Captcha;
use think\facade\Db;
use app\BaseController;
use think\facade\Request;


// 管理员接口
class Admin extends BaseController
{
    //获取用户列表
    public function getUserList($page = 1, $limit = 10)
    {
        $user = checkLogin();
        if ($user['admin'] != 1) {
            return returnJson(1, '无权限');
        }
        $list = Db::table('tb_user')->page($page, $limit)->select();
        return returnJson(0, 'success', $list);
    }
    public function getServerList($page = 1, $limit = 10)
    {
        $user = checkLogin();
        if ($user['admin'] != 1) {
            return returnJson(1, '无权限');
        }
        $list = Db::table('tb_server')->page($page, $limit)->select();
        return returnJson(0, 'success', $list);
    }


    public function setServer(){
        //供管理员使用
        $data = Request::param();
        //$user = checkLogin();  //此处为正式使用，需要从登录状态中获取uid，暂时使用临时测试
        $user= ['id'=>$data['uid'],'admin'=>1];  //此处为临时测试使用，实际使用时需要从登录状态中获取uid
        if ($user['admin'] != 1) {
            return returnJson(1, '无权限');
        }
        $r = Db::table('tb_server')->where('id',$data['id'])->find();
        //按照id（格式为uuid）
        $array = ['uid' => $user['id'], 'name' => $data['name'], 'address' => $data['address'], 'port' => $data['port'],
            'vid' => $data['vid'],'state_approved'=>$data['state_approved']];
        if ($data['state_approved'] == 1 and $data['state_hide']!=1)
        {#通过且不隐藏，则发布（如果隐藏，则在线列表及申请区都将不可见，相当于扫进辣稽堆）
            $array['state_release'] = 1;
        }
        if ($data['state_approved']==0 or $data['state_hide']==1)
        {#撤销通过或隐藏，则撤销发布状态
            $array['state_release'] = 0;
        }
        $array['time']=date('Y-m-d H:i:s',time());
        Db::table('tb_server')->where('id',$data['id'])->update($array);
        return returnJson(0, '操作成功');
    }
    public function setHide()
    {
        $data = Request::param();
        //$user = checkLogin();  //此处为正式使用，需要从登录状态中获取uid，暂时使用临时测试
        $user= ['id'=>$data['uid'],'admin'=>1];  //此处为临时测试使用，实际使用时需要从登录状态中获取uid
        if ($user['admin'] != 1) {
            return returnJson(1, '无权限');
        }
        $r = Db::table('tb_server')->where('id',$data['id'])->find();
        # 如果审核通过，只能修改有限的设置，否则返回错误提示
        if(!$r){
            return returnJson(1, '操作失败，服务器id不存在');
        }
        $array['state_hide'] = $data['state_hide'];
        if ($data['state_hide']==1)//隐藏则自动撤销发布状态
        {
            $array['state_release'] = 0;
        }
        $array['time']=date('Y-m-d H:i:s',time());
        Db::table('tb_server')->where('id',$data['id'])->update($array);
        return returnJson(0, '操作成功',);
    }
        public function setApproved()
    {
        $data = Request::param();
        //$user = checkLogin();  //此处为正式使用，需要从登录状态中获取uid，暂时使用临时测试
        $user= ['id'=>$data['uid'],'admin'=>1];  //此处为临时测试使用，实际使用时需要从登录状态中获取uid
        if ($user['admin'] != 1) {
            return returnJson(1, '无权限');
        }
        $r = Db::table('tb_server')->where('id',$data['id'])->find();
        # 如果审核通过，只能修改有限的设置，否则返回错误提示
        if(!$r){
            return returnJson(1, '操作失败，服务器id不存在');
        }
        $array['state_approved'] = $data['state_approved'];
        if ($data['state_approved']==0)//撤销审核通过状态自动撤销发布状态
        {
            $array['state_release'] = 0;
        }
        $array['time']=date('Y-m-d H:i:s',time());
        Db::table('tb_server')->where('id',$data['id'])->update($array);
        return returnJson(0, '操作成功',);
    }


}